++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(++(x, y), z) → ++(x, ++(y, z))
↳ QTRS
↳ DependencyPairsProof
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(++(x, y), z) → ++(x, ++(y, z))
++1(++(x, y), z) → ++1(x, ++(y, z))
++1(++(x, y), z) → ++1(y, z)
++1(.(x, y), z) → ++1(y, z)
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(++(x, y), z) → ++(x, ++(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ QDPOrderProof
++1(++(x, y), z) → ++1(x, ++(y, z))
++1(++(x, y), z) → ++1(y, z)
++1(.(x, y), z) → ++1(y, z)
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(++(x, y), z) → ++(x, ++(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
++1(++(x, y), z) → ++1(x, ++(y, z))
++1(++(x, y), z) → ++1(y, z)
++1(.(x, y), z) → ++1(y, z)
++^12 > ++2 > .1
nil > .1
++2: [1,2]
.1: multiset
nil: multiset
++^12: [1,2]
++(++(x, y), z) → ++(x, ++(y, z))
++(x, nil) → x
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(++(x, y), z) → ++(x, ++(y, z))